// pages/publish/publish.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    upImage: '/resource/publish/发布图片提示.jpg', //上传图片提示图片
    region: ['福建省', '漳州市', '龙海区'], //省区选择数据
    title: '',//标题
    address: '',//地址
    price: 0,//价格
    recyclablesId: 0, //回收物id
    isChoosingMedia: false //是否是上传图片状态
  },
  /**
   * 绑定省区选择的数据
   * @param {*} e 选择的省区数据
   */
  bindRegionChange: function (e) {
    this.setData({
      region: e.detail.value
    })
  },
  /**
   * 标题数据绑定
   * @param {*} e 
   */
  bindTitle: function (e) {
    this.setData({
      title: e.detail.value
    })
  },
  /**
   * 地址数据绑定
   * @param {*} e 
   */
  bindAddress: function (e) {
    this.setData({
      address: e.detail.value
    })
  },
  /**
   * 价格数据绑定
   * @param {*} e 
   */
  bindPrice: function (e) {
    this.setData({
      price: e.detail.value
    })
  },
  /**
   * 上传图片
   */
  upImage: function () {
    const that = this;
    that.setData({
      isChoosingMedia: true
    })
    //选择图片或拍摄
    wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
      sourceType: ['album', 'camera'],
      camera: 'back',
      success(res) {
        //上传图片
        wx.uploadFile({
          filePath: res.tempFiles[0].tempFilePath,
          name: 'file',
          url: 'http://110.41.190.243/api/upload/url',
          success(res) {//上传成功
            that.setData({
              upImage: res.data
            })
          }
        })
      },
      complete() {
        that.setData({
          isChoosingMedia: false
        })
      }
    })
  },

  /**
   * 发布
   */
  publish: function () {
    const that = this;
    let {
      recyclablesId,
      title,
      upImage,
      price,
      region,
      address
    } = this.data;
    //对发布信息进行验证
    if (title == "") {
      return wx.showToast({
        title: '描述一下吧！',
        icon: "none",
        mask: true
      })
    }
    if (upImage == "/resource/publish/发布图片提示.jpg" || upImage == "") {
      return wx.showToast({
        title: '上传个图片吧！',
        icon: "none",
        mask: true
      })
    }
    if (this.data.address == "") {
      return wx.showToast({
        title: '地址不能为空！',
        icon: "none",
        mask: true
      })
    }
    if (!price) {
      return wx.showToast({
        title: '检查一下价格呢！',
        icon: "none",
        mask: true
      })
    }
    //获取本地token
    let token = wx.getStorageSync('token');
    // 显示发布中提示
    wx.showLoading({
      title: '发布中',
      mask: true
    })
    //发布
    wx.request({
      url: getApp().globalData.api + "/publish_recycle",
      method: "POST",
      header: {
        token
      },
      data: {
        recyclablesId,
        title,
        upImage,
        region,
        address,
        price
      },
      success(res) {
        // 关闭发布中提示
        wx.hideLoading();
        if (res.data.code == 552 || res.data.code == 551) { //登录过期
          wx.removeStorageSync('token');
          // 跳转登录页面
          wx.reLaunch({
            url: '/pages/login/login',
          })
          //提示登录过期
          wx.showToast({
            title: res.data.msg,
            icon: 'none',
            mask: true
          })
        }
        //发布失败
        if (res.data.code == 557) {
          return wx.showToast({
            title: res.data.msg,
            icon: 'error',
            mask: true
          })
        }
        //发布成功
        if (res.data.code == 200) {
          wx.showToast({
            title: res.data.msg,
            icon: 'success',
            duration: 1000,
            mask: true
          })
          //重置表单
          that.setData({
            upImage: '/resource/publish/发布图片提示.jpg', //上传图片提示图片
            title: '',
            address: '',
            price: 0,
            recyclablesId: 0,
          })
          //跳转到商品详情页面(待完善)
        }
      },
      fail() {
        // 关闭发布中提示
        wx.hideLoading();
        wx.showToast({
          title: '请求超时',
          icon: 'error',
          mask: true
        })
      },
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const that = this;
    let { address, price, recyclablesId, region, title, image } = options;
    //如果是从编辑页跳转过来的，会有这些参数
    if (address && price && recyclablesId && region && title) {
      region = region.split(',');
      that.setData({
        recyclablesId: recyclablesId,
        upImage: image, //上传图片提示图片
        region: region, //省区选择数据
        title: title,//标题
        address: address,//地址
        price: price//价格
      })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
    //如果不是调用上传图片导致的页面隐藏，则重置表单
    if (!this.data.isChoosingMedia) {
      this.setData({
        upImage: '/resource/publish/发布图片提示.jpg', //上传图片提示图片
        region: ['福建省', '漳州市', '龙海区'], //省区选择数据
        title: '',//标题
        address: '',//地址
        price: 0,//价格
        RecyclablesId: 0
      })
    }
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})